package com.nifostasky.utilDao;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.nifostasky.db.DataBaseOpenHelper;

/**
 * 保存设置信息的数据库
 */
public class SettingInfo {
    //维持一个数据库帮助类的连接
    private DataBaseOpenHelper helper = null;

    //构造
    public SettingInfo(Context context) {
        this.helper = new DataBaseOpenHelper(context);
    }





    /**
     * 设置是否用音量键翻页 使用返回true 不使用为false
     */
    public boolean updatevolumePage(){
        //得到一个数据库
        SQLiteDatabase db = null;
        String sql1 = "update setInfo set  volumePage = 1 where setid  = 1";//使用音量键导航
        String sql2 = "update setInfo set volumePage = 0 where setid = 1";//不使用音量键导航
        //判断是否有数据,然后添加
        this.judgeAdd();
        //如果存在的值为1 (使用音量键) 则关闭
        if(this.queryShowKeyAndVolumePage()[1]==1){
            db = helper.getWritableDatabase();
            db.execSQL(sql2);
            //        关闭数据库
            db.close();
            return false;
        }else{
            db = helper.getWritableDatabase();
            db.execSQL(sql1);
            //        关闭数据库
            db.close();
            return true;
        }
    }













    /**
     * 设置是否隐藏底部按钮 隐藏返回true 不隐藏为false
     */
    public boolean updateShowKey(){
        //得到一个数据库
        SQLiteDatabase db = null;
        String sql1 = "update setInfo set  showKey = 1 where setid = 1";//打开底部导航按钮
        String sql2 = "update setInfo set showKey = 0 where setid = 1";//隐藏底部导航按钮
        //判断是否有数据,然后添加
        this.judgeAdd();
        //如果存在的值为1 (打开底部导航栏) 则关闭
        if(this.queryShowKeyAndVolumePage()[0]==1){
            db = helper.getWritableDatabase();
            db.execSQL(sql2);
            //        关闭数据库
            db.close();
            return true;
        }else{
            db = helper.getWritableDatabase();
            db.execSQL(sql1);
            //        关闭数据库
            db.close();
            return false;
        }
    }


    /**
     * 查询目前的设置   showKey 和volumePage的值
     */
    public int[] queryShowKeyAndVolumePage(){
        int set[] = new int[2];
        SQLiteDatabase db = helper.getWritableDatabase();
        String sql = "select showKey,volumePage from setInfo where setId = 1";
        Cursor cursor = db.rawQuery(sql,null);
        while (cursor.moveToNext()){
            int showPage = cursor.getInt(0);
            int volumPage = cursor.getInt(1);
            set[0] = showPage;
            set[1] = volumPage;
        }
        return set;
    }





    /**
     * 查询id=1 的数据是否存在 存在返回true 不存在返回false;
     */
    public boolean judageId(){
        //建立一个数据库的连接
        SQLiteDatabase db = helper.getWritableDatabase();
        String sql = "select count(*) from setInfo where setId = 1";

        Cursor cursor = db.rawQuery(sql,null);

        if(cursor.moveToNext()){
            if(cursor.getInt(0)==0){
                db.close();
                return false;
            }else{
                db.close();
                return true;
            }
        }else{
            db.close();
            return false;
        }

    }







    /**
     * 判断是否有id =1 的 数据 ,如果存在就 不做任何处理 如果不存在就增加id = 1的数据,默认设置都是开启状态
     */
    public void  judgeAdd(){
        SQLiteDatabase db = null;
        //String sql = "create table setInfo( showKey int ,volumePage int,setId int)";
        //如果存在一条id = 1;的数据  则不做任何操作  否则增加一条数据
        if(!this.judageId()){
                // 增加数据
            db = helper.getWritableDatabase();
            String sql = "insert into setInfo(showKey,volumePage,setId) values(1,1,1)";
            db.execSQL(sql);
            db.close();
        }else{
            //空操作
        }
    }

}
